#ifndef MESSAGE_HPP
#define MESSAGE_HPP

#include<string>


#include "Structures.hpp"
#include <boost/unordered_map.hpp>
#include <boost/shared_ptr.hpp>
#include <vector>

using namespace netspy::db;

namespace netspy
{

	enum Command 
	{
		UNKNOWN=0,
		REGISTER,
		CHECK_STATUS

	};


	const char * getCommandString(const Command &command);
	
	typedef std::vector<std::string> ServiceList;
	typedef boost::unordered_map<std::string,int> ServiceStatus;

	struct Message
	{
	        std::string	command;
	        Client		info;
	        ServiceList	service_list;
		ServiceStatus   status_map;

	};

	typedef boost::shared_ptr<Message> message_ptr;

}
#endif
